import java.util.Arrays;
import java.util.Scanner;
//class Test{
//    public static void main(String[] args) {
//        String s1="abc"+"def";//1
//        String s2=new String(s1);//2
//        if(s1.equals(s2))//3
//            System.out.println(".equals succeeded");//4
//        if(s1==s2)//5
//            System.out.println("==succeeded");//6


//    }
//}
//public class LoopQueue Test Queue<Integer> {
//    private Integer[] data;
//    // 指向当前循环队列的队首元素
//    private int head;
//    // 指向当前循环队列的队尾元素的下一个位置
//    private int tail;
//    // 当前队列中元素个数(思考:如何仅用tail和head来判断当前队列中的元素个数?)
//    private int size;
//    // n为希望保存的元素个数
//    public LoopQueue(int n) {
//        // 在循环队列中浪费一个空间不能存储元素，来判断是否已满
//        data = new Integer[n + 1];
//    }
//
//    @Override
//    public void offer(Integer val) {
//        if (isFull()) {
//            throw new ArrayIndexOutOfBoundsException("queue is full，cannot offer new val");
//        }
//        data[tail] = val;
//        tail = (tail + 1) % data.length;
//        size ++;
//    }
//
//    @Override
//    public Integer poll() {
//        if (isEmpty()) {
//            throw new NoSuchElementException("queue is empty!cannot poll");
//        }
//        Integer val = data[head];
//        head = (head + 1) % data.length;
//        size --;
//        return val;
//    }
//
//
//    @Override
//    public Integer peek() {
//        if (isEmpty()) {
//            throw new NoSuchElementException("queue is empty!cannot peek");
//        }
//        return data[head];
//    }
//
//    @Override
//    public boolean isEmpty() {
//        return tail == head;
//    }
//
//    @Override
//    public String toString() {
//        StringBuilder sb = new StringBuilder();
//        sb.append("front [");
//        // 取得最后一个元素下标
//        int lastIndex = tail == 0 ? data.length - 1 : tail - 1;
//        for (int i = head; i != tail;) {
//            sb.append(data[i]);
//            if (i != lastIndex) {
//                sb.append(", ");
//            }
//            i = (i + 1) % data.length;
//        }
//        sb.append("] tail");
//        return sb.toString();
//    }
//
//    public boolean isFull() {
//        return (tail + 1) % data.length == head;
//    }
//}




//
//public class Test {
//    public void getCustomerInfo() {
//
//        try {
//
//            // do something that may cause an Exception
//
//        } catch (java.io.FileNotFoundException ex) {
//
//            System.out.print("FileNotFoundException!");
//
//        } catch (java.io.IOException ex) {
//
//            System.out.print("IOException!");
//
//        } catch (java.lang.Exception ex) {
//
//            System.out.print("Exception!");
//
//        }
//
//    }
//    private static void testMethod(){
//
//        System.out.println("testMethod");
//
//    }
//
//    public static void main(String[] args) {
//
//        ((Test)null).testMethod();
//
//    }

//}

//public class Test {
//    public static void main(String[] args) {
//        ListNode prehead = new ListNode(-1);
//
//        ListNode prev = prehead;
//        while (l1 != null && l2 != null) {
//            if (l1.val <= l2.val) {
//                prev.next = l1;
//                l1 = l1.next;
//            } else {
//                prev.next = l2;
//                l2 = l2.next;
//            }
//            prev = prev.next;
//        }
//
//        // 合并后 l1 和 l2 最多只有一个还未被合并完，我们直接将链表末尾指向未合并完的链表即可
//        prev.next = l1 == null ? l2 : l1;
//
//
//
//        return prehead.next;
//        public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
//            if (list1 == null) {
//                return list2;
//            } else if (list2 == null) {
//                return list1;
//            } else if (l1.val < l2.val) {
//                l1.next = mergeTwoLists(l1.next, l2);
//                return l1;
//            } else {
//                l2.next = mergeTwoLists(l1, l2.next);
//                return l2;
//            }
//        }

//        class Solution {
//            public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
//                ListNode dum = new ListNode(0), cur = dum;
//                while(l1 != null && l2 != null) {
//                    if(l1.val < l2.val) {
//                        cur.next = l1;
//                        l1 = l1.next;
//                    }
//                    else {
//                        cur.next = l2;
//                        l2 = l2.next;
//                    }
//                    cur = cur.next;
//                }
//                cur.next = l1 != null ? l1 : l2;
//                return dum.next;
//            }
//        }



//        Scanner sc = new Scanner(System.in);
//        while(sc.hasNext()){
//            String str = sc.nextLine();
//            if(str == null && str.length() > 100){
//                System.err.println("输入有误!!");
//            }
//            String strCopy = String.valueOf(str.charAt(0));
//            for (int i = 0; i < str.length(); i++) {
//                if(strCopy.contains(String.valueOf(str.charAt(i)))){
//                    continue;
//                }else{
//                    strCopy += str.charAt(i);
//                }
//            }
//            System.out.println(strCopy);
//        }

//        trainList train = new trainList();
//        train.removeFirst() ;
//        System.out.println(train);
//        train.addFirst(1);
//        train.addFirst(3);
//        train.addFirst(5);
//        System.out.println(train);
//        myArray myArray = new myArray(3);
//        myArray.addFirst(1);
//        myArray.addLast(3);
//        myArray.addLast(5);
//        myArray.addIndex(1,2);
//        myArray.dataDeleteIndex(1);
//        myArray.dataRevise(1,5);
//        myArray.dataViewIndex(2);
//        System.out.println(myArray);
//        System.out.println(myArray.dataViewIndex(2));
//        myArray.dataView(5);
//        DoubleLinkList doubleList = new DoubleLinkList();
//        doubleList.addFirst(1);
//        doubleList.addLast(1);
//        doubleList.addLast(5);
//        doubleList.addLast(1);
//        doubleList.addIndex(1,10);
//        doubleList.addIndex(3,20);
//        doubleList.removeValueAll(1);
//        System.out.println(doubleList);
//    }
//}
//class Test1 {
//    public static void hello() {
//        System.out.println("hello");
//    }
//}
//public class Test {
//    public static void main(String[] args) {
//        // TODO Auto-generated method stub
//        Test1 test=null;
//        test.hello();
//    }
//}
//public class Test {// 1
//    private static int x = 100;// 2
//    public static void main(String args[]) {// 3
//        Test hsl = new Test();// 4
//        hsl.x++;// 5
//        Test hs2 = new Test();// 6
//        hs2.x++;// 7
//        hsl = new Test();// 8
//        hsl.x++;// 9
//        Test.x--;// 10
//        System.out.println(" x=" + x);// 11
//    }
//}
//public class Test {
//
//    private int count;
//
//    public static void main(String[] args) {
//
//        Test test=new Test(88);
//
//        System.out.println(test.count);
//
//    }
//
//    Test(int a) {
//
//        count=a;
//
//    }
//
//}
//public class Test{
//    static int cnt = 6;
//    static{
//        cnt += 9;
//    }
//    public static void main(String[] args){
//        System.out.println("cnt =" + cnt);
//    }
//    static{
//        cnt /=3;
//    };
//}
//public class Student {
//    private int id;
//    private String name;
//    public Student(){
//        //定义无参构造方法
//    }
//    public Student(int id,String name){
//        //定义有参构造方法
//        this.id = id;
//        this.name = name;
//    }
//    public void steName(String name){
//        //定义一个setName()方法,用于导入学生姓名
//        this.name = name;//将参数值赋给成员变量
//    }
//    public String getName(){
//        return this.name;// 定义一个getName()方法，用于获取学生姓名
//    }
//    public Student getStudent(){
//        return this;// 返回Student类引用
//    }
//}
//public class Test {
//
//    static int i = 2021;        // 成员变量
//    public void call() {    // 成员方法
//        for(i=0; i<3; i++) {
//            System.out.print(i + " ");
//            if(i == 2 ) {
//                System.out.println();        // 换行
//            }
//        }
//    }
//
//    public Test() {        // 构造方法
//    }
//
//    public static void main(String[] args) {
//        Test o1 = new Test();        // 创建一个对象
//        Test o2 = new Test();        // 创建另一个对象
//        o2.i = 60;        // 给第二个类成员变量赋值
//
//        System.out.println("第一个实例对象调用变量i的结果为："+ o1.i);
//        o1.call();
//        System.out.println("第二个实例对象调用变量i的结果为："+ o2.i);
//        o2.call();
//    }
////
//}

//public class Test{

//    public static void main(String[] args){
//        String a = "We are happy.";
//        char [] b =a.toCharArray();
//        char [] c = Arrays.copyOf(b,b.length * 2);
//        for (int i = 0; i < b.length; i++) {
//            if(b[i] == ' '){
//                c[i] = '%20';
//            }
//        }
//        Math.abs()
//        for (int i = 0; i < b.length; i++) {
//            System.out.print(b[i]);
//        }
////        Object o=new Object(){
////            public boolean equals(Object obj){
////                return true;
////            }
////        };
////        System.out.println(o.equals("Fred"));
//    }
//}

//class Test{
//    public static void hello(){
//        System.out.println("hello");
//    }
//}
//public class MyApplication{
//    public static void main(String[] args) {
//        Test test = null;
//        test.hello();
//    }
//}
//class MyApplication{
//    public static void main(String[] args) {
//        String str1 = "hello";
//        String str2 = "he" + new String("llo");
//        System.out.println(str1 == str2);
//    }
//}
//class Base{
//    public Base(String s){
//        System.out.println("B");
//    }
//
//}
//public class Derived extends Base{
//    public Derived(String s){
//        System.out.println("D");
//    }
//
//    public static void main(String[] args) {
//        new Derived("C");
//    }
//}

//public class Person {
//    public String name = "Person";
//    int age = 0;
//}
//public class Child extends Person{
//    public String grade;
//
//    public static void main(String[] args) {
//        Person p = new Child();
//        System.out.println(p.name);
//    }
//}